Apparatus and method for synchronizing virtual machine

ABSTRACT

Disclosed herein are an apparatus and method for synchronizing a virtual machine. The apparatus includes a distributed image server and a virtual machine operation management unit. The distributed image server includes one or more servers distributed across a network, transfers a virtual machine image to a user using the servers, and synchronizes the virtual machine image. The virtual machine operation management unit provides a virtual machine management program so that the virtual machine image for the user can be executed on a terminal, used by the user, regardless of a location of the user.

CROSS REFERENCE TO RELATED APPLICATION

This application claims the benefit of Korean Patent Application No. 10-2010-0114075, filed on Nov. 16, 2010, which is hereby incorporated by reference in its entirety into this application.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates generally to an apparatus and method for synchronizing a virtual machine and, more particularly, to an apparatus and method for synchronizing a virtual machine, which synchronize a virtual machine image, thereby rendering it possible to provide the same working environment regardless of changes in the environment.

2. Description of the Related Art

As most personal computing work is performed over a network, the concept of cloud computing is being promulgated. In particular, with the advent of a variety of computing devices, such as the smart phone, the desire to conduct personal computing work regardless of changes in the environment is getting stronger.

However, current cloud computing services are at the level of synchronizing data files for each individual user, and have limitations on the maintenance and provision of the same working environment.

Meanwhile, the use of virtual machines is increasing in the field of separating the networks of public organizations, and the need for a virtual machine is further increasing along with the increased desire to remotely conduct computing work.

However, when a virtual OS is used remotely via a virtual machine, a large amount of data should be continuously transferred over a network, and therefore the number of users who are using the network bandwidth increases, thus resulting in the problem of the processing speed of an Operating System (OS) becoming slow.

SUMMARY OF THE INVENTION

Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to provide an apparatus and method that synchronize a virtual machine so that the same working environment can be provided regardless of changes in the environment.

In order to accomplish the above object, the present invention provides an apparatus for synchronizing a virtual machine, including a distributed image server configured to include one or more servers distributed across a network, to transfer a virtual machine image to a user using the servers, and to synchronize the virtual machine image; and a virtual machine operation management unit configured to provide a virtual machine management program so that the virtual machine image for the user can be executed on a terminal, used by the user, regardless of a location of the user.

The distributed image server may update the virtual machine image with a copy-on-write (COW) image, into which a basic image of the virtual machine image has been changed, so as to synchronize the virtual machine image.

The distributed image server may transfer the virtual machine image using a server that has been selected from among the servers, distributed across the network, using bandwidth and delay time as criteria for the selection.

The virtual machine management program may include a distributed synchronization module for dividing the virtual machine image into the basic image and the COW image and transferring the COW image to the distributed image server.

The virtual machine management program may include a hypervisor module for executing a virtual operating system (OS) on the terminal using the basic image and the COW image.

The virtual machine management program may include a virtual machine image management module for performing management so that the basic image can be maintained in the terminal and requesting that the COW image be transferred to the distributed image servers using the distributed synchronization module based on results of determination of whether there has been a change in the COW image.

The virtual machine operation management unit may provide the virtual machine management program to a second terminal when the user has moved from a first terminal to the second terminal.

The distributed image server may receive the COW image from the first terminal using the virtual machine management program, and then update the virtual machine image with the COW image.

The distributed image server may transfer the virtual machine image updated with the COW image to the second terminal, thereby maintaining synchronization.

The distributed image server may transfer the virtual machine image using the servers, distributed across the network, in a distributed fashion.

In order to accomplish the above object, the present invention provides a method of synchronizing a virtual machine, including providing a virtual machine management program to a terminal to which a user has moved over a network; one or more servers distributed across the network transferring a virtual machine image to the terminal using the virtual machine management program; receiving a COW image, into which a basic image of the virtual machine image has been changed, from the terminal; and updating the virtual machine image with the COW image.

The method may further include, if the user who had used the terminal has moved to another terminal, providing a virtual machine management program to the latter terminal; and transferring the virtual machine image, updated with the COW image, to the latter terminal using the virtual machine management program, thereby maintaining synchronization.

The transferring a virtual machine image to the terminal may include selecting a first server from among the servers, distributed across the network, using bandwidth and delay time as criteria for selection; and transferring the virtual machine image using the first server.

The virtual machine management program may include a distributed synchronization module for dividing the virtual machine image into the basic image and the COW image and transferring the COW image; a hypervisor module for executing a virtual OS on the terminal using the basic image and the COW image; and a virtual machine image management module for performing management so that the basic image can be maintained in the terminal and requesting that the COW image be transferred using the distributed synchronization module based on results of determination of whether there has been a change in the COW image.

The transferring a virtual machine image to the terminal may include transferring the virtual machine image to the terminal using the distributed synchronization module.

The receiving a COW image, into which a basic image of the virtual machine image has been changed, from the terminal may include the virtual machine image management module receiving the COW image, transferred by the distributed synchronization module, based on results of determination of whether there has been a change in the COW image.

The transferring a virtual machine image to the terminal may include transferring the virtual machine image using the servers, distributed across the network, in a distributed fashion.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a drawing schematically illustrating a network including an apparatus for synchronizing a virtual machine according to an embodiment of the present invention;

FIG. 2 is a drawing schematically illustrating the apparatus for synchronizing a virtual machine shown in FIG. 1;

FIG. 3 is a drawing illustrating an example of a virtual machine management program that is provided by the virtual machine operation management unit shown in FIG. 2;

FIG. 4 is a flowchart illustrating a method for the apparatus for synchronizing a virtual machine shown in FIG. 1 to provide a virtual machine synchronization service; and

FIG. 5 is a flowchart illustrating a method of receiving a virtual machine synchronization service from the apparatus for synchronizing a virtual machine shown in FIG. 1.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference now should be made to the different drawings, in which the same reference numerals are used throughout the different drawings to designate the same or similar components.

The present invention will be described in detail with reference to the accompanying drawings. Here, repetitive descriptions and descriptions of known functions and constructions which have been deemed to make the gist of the present invention unnecessarily vague will be omitted below. The embodiments of the present invention are provided in order to fully describe the present invention to a person having ordinary skill in the art. Accordingly, the shapes, sizes, etc. of elements in the drawings may be exaggerated to make the description clear.

FIG. 1 is a drawing schematically illustrating a network including an apparatus 100 for synchronizing a virtual machine according to an embodiment of the present invention.

FIG. 2 is a drawing schematically illustrating the apparatus 100 for synchronizing a virtual machine shown in FIG. 1.

As shown in FIG. 1, the apparatus 100 for synchronizing a virtual machine according to the embodiment of the present invention provides a virtual machine synchronization service to the terminal of a user over a network regardless of the movement of the user. That is, when the user received a virtual machine synchronization service and had used a personal working environment on a terminal 200 over a network and then moved to a terminal 300 or 400, the apparatus 100 for synchronizing a virtual machine provides a virtual machine synchronization service to a corresponding terminal selected by the user and thereby enables the personal working environment, used on the terminal 200, to be kept consistent, thereby rendering it possible to provide a virtual machine synchronization service regardless of the movement of the user.

In detail, referring to FIG. 2, the apparatus 100 for synchronizing a virtual machine includes a distributed image server 110 and a virtual machine operation management unit 120.

The distributed image server 110 includes one or more servers that are distributed across a network, and stores a recently updated virtual machine image for a user who is using a virtual machine synchronization service. When the user requests a virtual machine synchronization service, the distributed image server 110 transfers the virtual machine image using one of the servers, distributed over the network, which operates in the highest-performance bandwidth and has the lowest delay time. Although in this embodiment of the present invention, the virtual machine image is transferred using a server that has been selected from among the servers, distributed over the network, using the bandwidth and the delay time as criteria for selection, the present invention is not limited thereto, but the virtual machine image may be transferred using the servers distributed over the network in a distributed fashion.

Meanwhile, when a copy-on-write (COW) image has been changed by a user, the distributed image server 110 receives the changed COW image via the virtual machine management program 121 installed on the terminal which is currently being used by the user. The distributed image server 110 updates the virtual machine image for the user with the changed COW image. Furthermore, when the user changes between terminals, the distributed image server 110 provides the virtual machine image recently updated with the COW image, thereby synchronizing the virtual machine image for the user.

The virtual machine image according to an embodiment of the present invention is divided into a basic image and a COW image. Here, the basic image includes the kernel of an OS and basic programs, and is installed on each terminal over the network, which is used by the user. The COW image is created in such a way that the basic image is changed into the COW image while the user is using a virtual OS using the virtual machine. The COW image has a smaller size than the basic image, is incorporated into the virtual machine image, and is used to synchronize the virtual OS.

The virtual machine operation management unit 120 creates the virtual machine management program 121 so that the virtual machine image can be executed on a terminal being used by a user regardless of the movement of the user over the network. When the user makes a request, the virtual machine operation management unit 120 transfers the virtual machine management program 121 to the terminal currently being used by the user, thereby managing the execution of the virtual machine image.

Referring back to FIG. 1 again, terminals 200 to 400 are connected to the network and are selected by the user at different locations, and the virtual machine management program 121 is installed such that the user can use a virtual machine synchronization service.

FIG. 3 is a drawing illustrating an example of a virtual machine management program that is provided by the virtual machine operation management unit shown in FIG. 2. In conjunction with FIG. 3, a description will be given on the assumption that the user receives a virtual machine synchronization service using the terminal 200 over the network.

Referring to FIGS. 1 and 3, the virtual machine management program 121 provided by the virtual machine operation management unit 120 of the apparatus 100 for synchronizing a virtual machine according to an embodiment of the present invention includes a distributed synchronization module 1211, a hypervisor module 1212, and a virtual machine image management module 1213.

When the user requests the provision of the virtual machine synchronization service, the distributed synchronization module 1211 receives the virtual machine image for the user using the terminal 200 currently being used. The distributed synchronization module 1211 divides the virtual machine image into a basic image and a COW image. The distributed synchronization module 1211 transfers the basic image and the COW image to the hypervisor module 1212 so that they can be executed in the terminal 200.

The hypervisor module 1212 receives the virtual machine image, which has been divided into the basic image and the COW image, from the virtual machine image management module 1211, and enables the virtual OS to be executed in the terminal 200 using the separate basic image and COW image.

The virtual machine image management module 1213 performs management so that the basic image can be maintained in the terminal 200 of the user. The virtual machine image management module 1213 determines whether there has been a change in the COW image, and, if there has been a change in the COW image, requests that the COW image be transferred to the distributed image server 110 using the distributed synchronization module 1211.

FIG. 4 is a flowchart illustrating a method for the apparatus for synchronizing a virtual machine shown in FIG. 1 to provide a virtual machine synchronization service. In conjunction with FIG. 4, a description will be given on the assumption that a user receives a virtual machine synchronization service and also uses a personal working environment on the terminal 200 over the network, and then moves to the terminal 300 and then to the terminal 400.

Referring to FIGS. 1 and 4, when the user receives a virtual machine synchronization service and also uses a personal working environment on the terminal 200 over the network, and then moves to the terminal 300 and also requests a virtual machine synchronization service, the virtual machine operation management unit 120 of the apparatus 100 for synchronizing a virtual machine virtual creates the machine management program 121 and transfers it to the terminal 300 at step S100 so that a virtual machine image can be executed on the terminal 300.

When the user installs the virtual machine management program 121 on the terminal 300 and performs user login, the distributed image server 110 transfers the virtual machine image for the user, recently updated and synchronized, using one of the servers, distributed across the network, which operates in the highest-performance bandwidth and has the lowest delay time at step S110.

When the user receives a COW image using the terminal 300, the distributed image server 110 updates the virtual machine image for the user with the COW image at steps S120 and S130.

When the user moves to another terminal 400 and requests the provision of a virtual machine synchronization service, the distributed image server 110 provides the virtual machine image, updated with the COW image, using the terminal 300 recently used, thereby keeping the virtual machine synchronized at step S140.

FIG. 5 is a flowchart illustrating a method of receiving a virtual machine synchronization service from the apparatus for synchronizing a virtual machine shown in FIG. 1. In conjunction with FIG. 5, a description will be given on the assumption that a user receives a virtual machine synchronization service and also uses a personal working environment on the terminal 200 over the network and then moves to the terminal 300.

As shown in FIG. 5, when the user network who received the virtual machine synchronization service over the network and also had used the personal working environment on the terminal 200 moved to the terminal 300, the terminal 300 requests the virtual machine synchronization service from the apparatus 100 for synchronizing a virtual machine so as to provide the virtual machine synchronization service to the user at step S200.

The terminal 300 receives a virtual machine management program 121 from the virtual machine operation management unit 120 of the apparatus 100 for synchronizing a virtual machine. The terminal 300 installs the distributed synchronization module 1211, hypervisor module 1212 and virtual machine image management module 1213 of the virtual machine management program 121 at step S210.

The terminal 300 divides a virtual machine image into a basic image and a COW image using the distributed synchronization module 1211 at step S220. The terminal 300 enables a virtual OS to be executed on the terminal currently being used using the hypervisor module 1212 and the basic image and the COW image at step S230. Then, the terminal 300 performs management using the virtual machine image management module 1213 so that the basic image can be maintained at 5240. The terminal 300 determines whether there has been a change in the COW image using the virtual machine image management module 1213 at step S250.

If, as a result of the determination at step S250, it is determined that there has been a change in the COW image, the terminal 300 transfers the changed COW image to the distributed image server 110 using the distributed synchronization module 1211 at step S260, so that the virtual machine image for the user can be updated. The terminal 300 determines whether the virtual machine synchronization service has been terminated using the distributed image server 110 at step S270.

If, as a result of the determination at step S270, it is determined that the virtual machine synchronization service has not been terminated, the terminal 300 provides a virtual machine synchronization service while performing the process after step S230. If, as a result of the determination at step S270, the virtual machine synchronization service has been terminated, the terminal 300 determines that the user has terminated the provision of the virtual machine synchronization service, and then terminates the virtual machine synchronization service.

Meanwhile, if, as a result of the determination at step S250, there has been no change in the COW image, the terminal 300 terminates the virtual machine synchronization service or continues to provide the virtual machine synchronization service based on the results of the determination of whether the virtual machine synchronization service has been terminated at step S270.

As described above, the apparatus 100 for synchronizing a virtual machine according to an embodiment of the present invention divides a virtual machine image into a basic image and a COW image and updates the virtual machine image with the COW image changed by the user, and therefore the virtual machine image recently updated with the COW image can be provided to the user regardless of the movement of the user, thereby rendering it possible to maintain the synchronization of a virtual machine.

Furthermore, when a virtual machine image is updated, the update is performed by directly processing a COW image, changed by the user, using an instruction on a terminal currently being used, rather than by receiving image data and then performing the update, thereby providing improved reaction and operating speed and increasing the convenience of the user using the absolute shortest synchronization time.

Furthermore, the virtual machine image is transferred using one of the servers, distributed across the network, which operates in the highest-performance bandwidth and has the lowest delay time, and therefore the user can use the virtual machine without being affected by the bandwidth or delay time of the network.

The present invention is configured to divide a virtual machine image into a basic image and a COW image and to update a virtual machine image for a user with a COW image changed by the user, thereby providing the advantage of offering a recently updated virtual machine image to the user regardless of the movement of the user and, therefore, maintaining synchronization of a virtual machine.

Furthermore, the present invention is configured to update a virtual machine image by directly processing a COW image, changed by the user, on a terminal currently being used using instructions, rather than receiving image data and then performing the update, thereby providing the advantage of offering improved reaction speed and operating speed as well as increasing the convenience of the user using the absolute shortest synchronization time.

Furthermore, the present invention is configured to transfer a virtual machine using one of the servers, distributed across the network, which operates in the highest-performance bandwidth and has the lowest delay time, thereby providing the advantage of enabling user to use a virtual machine without being affected by the bandwidth or delay time of the network.

Moreover, the present invention is configured to transfer a virtual machine image using the servers, distributed across the network, in a distributed fashion, thereby providing the advantage of improving the transmission speed of the virtual machine image.

Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims. 

1. An apparatus for synchronizing a virtual machine, comprising: a distributed image server configured to include one or more servers distributed across a network, to transfer a virtual machine image to a user using the servers, and to synchronize the virtual machine image; and a virtual machine operation management unit configured to provide a virtual machine management program so that the virtual machine image for the user can be executed on a terminal, used by the user, regardless of a location of the user.
 2. The apparatus as set forth in claim 1, wherein the distributed image server updates the virtual machine image with a copy-on-write (COW) image, into which a basic image of the virtual machine image has been changed, so as to synchronize the virtual machine image.
 3. The apparatus as set forth in claim 2, wherein the distributed image server transfers the virtual machine image using a server that has been selected from among the servers, distributed across the network, using bandwidth and delay time as criteria for the selection.
 4. The apparatus as set forth in claim 2, wherein the virtual machine management program comprises a distributed synchronization module for dividing the virtual machine image into the basic image and the COW image and transferring the COW image to the distributed image server.
 5. The apparatus as set forth in claim 4, wherein the virtual machine management program comprises a hypervisor module for executing a virtual operating system (OS) on the terminal using the basic image and the COW image.
 6. The apparatus as set forth in claim 5, wherein the virtual machine management program comprises a virtual machine image management module for performing management so that the basic image can be maintained in the terminal and requesting that the COW image be transferred to the distributed image servers using the distributed synchronization module based on results of determination of whether there has been a change in the COW image.
 7. The apparatus as set forth in claim 2, wherein the virtual machine operation management unit provides the virtual machine management program to a second terminal when the user has moved from a first terminal to the second terminal.
 8. The apparatus as set forth in claim 7, wherein the distributed image server receives the COW image from the first terminal using the virtual machine management program, and then updates the virtual machine image with the COW image.
 9. The apparatus as set forth in claim 8, wherein the distributed image server transfers the virtual machine image updated with the COW image to the second terminal, thereby maintaining synchronization.
 10. The apparatus as set forth in claim 2, wherein the distributed image server transfers the virtual machine image using the servers, distributed across the network, in a distributed fashion.
 11. A method of synchronizing a virtual machine, comprising: providing a virtual machine management program to a terminal to which a user has moved over a network; one or more servers distributed across the network transferring a virtual machine image to the terminal using the virtual machine management program; receiving a COW image, into which a basic image of the virtual machine image has been changed, from the terminal; and updating the virtual machine image with the COW image.
 12. The method as set forth in claim 11, further comprising: if the user who had used the terminal has moved to another terminal, providing the virtual machine management program to the latter terminal; and transferring the virtual machine image, updated with the COW image, to the latter terminal using the virtual machine management program, thereby maintaining synchronization.
 13. The method as set forth in claim 11, wherein the transferring a virtual machine image to the terminal comprises: selecting a first server from among the servers, distributed across the network, using bandwidth and delay time as criteria for selection; and transferring the virtual machine image using the first server.
 14. The method as set forth in claim 11, wherein the virtual machine management program comprises: a distributed synchronization module for dividing the virtual machine image into the basic image and the COW image and transferring the COW image; a hypervisor module for executing a virtual OS on the terminal using the basic image and the COW image; and a virtual machine image management module for performing management so that the basic image can be maintained in the terminal and requesting that the COW image be transferred using the distributed synchronization module based on results of determination of whether there has been a change in the COW image.
 15. The method as set forth in claim 11, wherein the transferring a virtual machine image to the terminal comprises transferring the virtual machine image to the terminal using the distributed synchronization module.
 16. The method as set forth in claim 11, wherein the receiving a COW image, into which a basic image of the virtual machine image has been changed, from the terminal comprises receiving the COW image, transferred by the distributed synchronization module, based on results of determination of whether there has been a change in the COW image.
 17. The method as set forth in claim 11, wherein the transferring a virtual machine image to the terminal comprises transferring the virtual machine image using the servers, distributed across the network, in a distributed fashion. 